扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
三.配置 JNDI
在安装了 MQSeries Client for Java 之后,在 \java\bin 目录下找到 JMSAdmin.config 文件。该文件主要用来说明 Context 的存储方式及存储地址,对应于文件中的两个参数 INITIAL_CONTEXT_FACTORY 和 PROVIDER_URL 。典型的 JMSAdmin.config 文件内容如下:
#INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory
INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
#INITIAL_CONTEXT_FACTORY=com.ibm.ejs.ns.jndi.CNInitialContextFactory
#
#PROVIDER_URL=ldap://polaris/o=ibm,c=us
PROVIDER_URL=file:/d:/temp
#PROVIDER_URL=iiop://localhost/
#
SECURITY_AUTHENTICATION=none
INITIAL_CONTEXT_FACTORY 表示 JMSAdmin Tool 使用的服务提供商。当前有三种受支持的值。 com.sun.jndi.ldap.LdapCtxFactory 用于 LDAP ,如果使用它就必须安装一个 LDAP 服务器。 com.sun.jndi.fscontext.RefFSContextFactory 用于文件系统上下文,它只需要使用者提供存放上下文的文件路径。 com.ibm.ejs.ns.jndi.CNInitialContextFactory 是专门为 websphere 提供的,它需要和 websphere 的 CosNaming 资源库一起使用。
PROVIDER_URL 表示会话初始上下文的 URL ,由 JMSAdmin tool 实现的所有 JNDI 操作的根。它和 INITIAL_CONTEXT_FACTORY 一一对应。
ldap://hostname/contextname 用于 LDAP
file:[drive:]/pathname 用于文件系统上下文
iiop://hostname[:port]/[?TargetContext=ctx] 用于访问 websphere CosNaming 名称空间
最后还有一个参数 SECURITY_AUTHENTICATION ,用于说明 JNDI 是否把安全性凭证传递给了您使用的服务供应商。只有当使用了 LDAP 服务供应商时,才使用此参数。此参数有三个值, none (匿名认证)、 simple (简单认证)和 CRAM-MD5 认证机制。如果没有提供有效值,缺省值为 none 。
确认配置文件之后,可以在 \java\bin 目录下启动 JMSAdmin 控制台。也可以在任何目录下用下面的命令来启动控制台:
JMSAdmin –cfg MQ_JAVA_INSTALL_PATH\java\bin\JMSAdmin.config
其中 MQ_JAVA_INSTALL_PATH 为 MQSeries Client for Java 安装的根目录。
若启动失败,则好好检查一下您的环境变量是否设置正确。根据我个人的经验,除了把 com.ibm.mq.jar 和 com.ibm.mqjms.jar 加入到环境变量外,还要把 fscontext.jar 和 providerutil.jar 加入到环境变量。
进入 JMSAdmin 控制台后,您可以自由定义 sub context 。对于子上下文的操作,主要有一下命令:
display ctx
define ctx(ctxname)
change ctx(ctxname)
change ctx(=up)
change ctx(=init)
delete ctx(ctxname)
当然,在这里的主要任务并非是用来定义 sub context ,而是用来定义以下几个对象:
MQQueueConnectionFactory
MQTopicConnectionFactory
MQQueue
MQTopic
(还有其它的一些对象,如 MQXAQueueConnectionFactory 等,不常用到,在此不作说明。)
可以使用很多动词来操纵目录名称空间中的受管理对象。 ALTER 、 DEFINE 、 DISPLAY 、 DELETE 、 COPY 和 MOVE ,它们的用法都算比较简单,这里只列举一二以作说明。
例一:定义一 QueueConnectionFactory ,连接主机 10.10.10.18 ,端口 1414
DEFINE QCF(EXAMPLEQCF)+
DESC(Example Queue Connection Factory)+
TRAN(CLIENT)+
HOST(10.10.10.18)+
QMGR(QM_EXAMPLE)+
CHAN(S_EXAMPLE)+
PORT(1414)+
CCSID(1381)
例二:定义一 Queue ,其对应于 MQ 中的 Q_EXAMPLE
DEFINE Q(EXAMPLEQL)+
DESC(Local queue)+
QMGR(QM_EXAMPLE)+
QUEUE(Q_EXAMPLE)+
CCSID(1381)
婵犵鈧啿鈧綊鎮樻径鎰畺闁靛ň鏅滄慨婊堟偨椤栨稓鎽冮柟鐑╂櫊瀹曟岸宕堕埡鍌滄殸闂佽鍨伴崢鏍姳閿涘嫭鍠嗘い銈呭姬婵☆偅婢樺Λ妤呮偂濞嗘挸瀚夐柍褜鍓熷顒侊紣娓氣偓閻涙捇鏌涘┑鍛樂缂佹鐭傞獮搴ㄥ焵椤掑嫬瀚夋い鏍ㄧ懁缁诲棝鏌熼褍鐏茬紒杈ㄧ箞閺屽洭鏁愰崟顓犳澖闁荤姳闄嶉崹钘壩i崟顖涘殜闁硅泛顫曢埀顒€锕︾槐鏃堝箣閻愬弬妤呮煛閸偄鐏﹂柛瀣墬缁傛帞鎹勯搹瑙勵啈闂佸搫瀚烽崹閬嶅磻瀹ュ鍎嶉柛鏇ㄥ墯娴犳ê霉閿濆棗鈻曢柍褜鍓氶弻銊ф閻愬鈻曢悗锝傛櫇椤忛亶鏌曢崱顓熷